package com.zxcrm.zxcrm.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zxcrm.common.annotation.Excel;
import com.zxcrm.common.core.domain.BaseEntity;

/**
 * 客户对象 zxcrm_customer
 * 
 * @author xu
 * @date 2025-07-07
 */
@Data
public class ZxcrmCustomer extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private Long id;

    /** 公司名称 */
    @Excel(name = "公司名称")
    private String companyName;

    /** 公司简称 */
    @Excel(name = "公司简称")
    private String companyAbbreviation;

    /** 客户分类 */
    @Excel(name = "客户分类")
    private String customerClassify;

    /** 客户等级 */
    @Excel(name = "客户等级")
    private String customerLevel;

    /** 经营地址 */
    @Excel(name = "经营地址")
    private String operateAddress;

    /** 实际控制人ID */
    @Excel(name = "实际控制人ID")
    private Long actualControllerId;

    /** 疫苗部门负责人ID */
    @Excel(name = "疫苗部门负责人ID")
    private Long vaccineDepartmentHeadId;

    /** 采购对接人ID */
    @Excel(name = "采购对接人ID")
    private Long purchaseDockingId;

    /** 库管ID */
    @Excel(name = "库管ID")
    private Long warehouseOperatorId;

    /** 使用者ID */
    @Excel(name = "使用者ID")
    private Long userId;

    /** 财务ID */
    @Excel(name = "财务ID")
    private Long financeId;

    /** 所属地区 */
    @Excel(name = "所属地区")
    private String area;

    /** 客户类型 */
    @Excel(name = "客户类型")
    private String customerType;

    /** 竞品 */
    @Excel(name = "竞品")
    private String competitor;

    /** 主销产品（疫苗） */
    @Excel(name = "主销产品")
    private String mainSalesProduct;

    /** 主销产品（疫苗） */
    @Excel(name = "主销产品(疫苗)")
    private String mainSalesProductVaccine;

    /** 客户关系 */
    @Excel(name = "客户关系")
    private String customerReloationship;

    /** 客户内部组织关系 */
    @Excel(name = "客户内部组织关系")
    private String customerOrganizationalRelationship;

    /** 其他 */
    @Excel(name = "其他")
    private String other;

    /** 接种量 */
    @Excel(name = "接种量")
    private String inoculationAmount;

    /** 采购负责人ID */
    @Excel(name = "采购负责人ID")
    private Long purchaseHeadId;

    /** 客户状态 */
    @Excel(name = "客户状态")
    private String customerStatus;

    /** 客户来源 */
    @Excel(name = "客户来源")
    private String customerSource;

    /** 客户成交卡点分析 */
    @Excel(name = "客户成交卡点分析")
    private String customerTransationAnalysis;

    /** 特殊要求 */
    @Excel(name = "特殊要求")
    private String specialRequirement;

    /** 回款周期 */
    @Excel(name = "回款周期")
    private String paymentCycle;

    /** 结算方式 */
    @Excel(name = "结算方式")
    private String medicinePaymentMethod;

    /** 仓储配送 */
    @Excel(name = "仓储配送")
    private String warehouseDelivery;

    /** 供应商简称 */
    @Excel(name = "供应商简称")
    private String supplierAbbreviation;

    /** 销售负责人id */
    @Excel(name = "销售负责人id")
    private Long saleHeadId;

    /** 销售对接人id */
    @Excel(name = "销售对接人id")
    private Long saleContactId;

    /** 供应商状态 */
    @Excel(name = "供应商状态")
    private String supplierStatus;

    /** 供应商来源 */
    @Excel(name = "供应商来源")
    private String supplierSource;

    /** 供应商类型 */
    @Excel(name = "供应商类型")
    private String supplierType;

    /** 供应商等级 */
    @Excel(name = "供应商等级")
    private String supplierLevel;

    /** 供应商内部组织关系 */
    @Excel(name = "供应商内部组织关系")
    private String supplierOrganizationalRelationship;

    /** 供应商政策支持 */
    @Excel(name = "供应商政策支持")
    private String supplierPolicySupport;

    /** 贷款周期 */
    @Excel(name = "贷款周期")
    private String loanCycle;

    /** 结算方式 */
    @Excel(name = "结算方式")
    private String supplierPaymentMethod;

    /** 是否成交 */
    @Excel(name = "是否成交")
    private String dealStatus;

    /** 成交时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "成交时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dealTime;

    /** 下次联系时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下次联系时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date nextContactTime;

    /** 最后跟进 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后跟进", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finallyFollow;

    /** 录入方式 */
    @Excel(name = "录入方式")
    private String inputMethod;

    /** 信息完整度 */
    @Excel(name = "信息完整度")
    private String informationCompleteness;

    /** 状态（0正常 1停用） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    private String abandonStatus;

    private String abandonReason;

    private String examStatus;



}
